El Entorno de trabajo de hojas de cálculo permite crear y editar hojas de cálculo, utilizar datos de la hoja de cálculo como parámetros en un modelo, rellenar la hoja de cálculo con datos recuperados de un modelo, realizar cálculos y exportar los datos a otras aplicaciones de hojas de cálculo como LibreOffice o Microsoft Excel.
Una hoja de cálculo con determinadas celdas rellenas de texto y cantidades
Note que eliminar celdas con datos puede romper la hoja de cálculo y tu modelo si este se basa en la hoja de cálculo. No será advertido previamente si esto sucede.
Filas y columnas pueden ser insertadas o eliminadas haciendo clic derecho en un encabezado de fila o columna y seleccionando la opción apropiada en el menú contextual. Es posible seleccionar primero varias filas o columnas. Ya sea manteniendo presionado la tecla Ctrl al seleccionar los encabezados, o manteniendo presionado el botón del mouse izquierdo y arrastrando.
El contenido de una celda se puede editar seleccionando la celda e ingresando un valor en el cuadro de entrada Content en la parte superior de la ventana. Para editar una celda en el lugar, selecciónela y presione F2, o haga doble clic en ella.
Para eliminar una o más celdas selecciónelas y presione Supr. Esto eliminará sus contenidos, sus propiedades y sus alias. Para eliminar solo el contenido de una celda, se debe editar.
Las operaciones de cortar y copiar-pegar se pueden usar en las celdas de hojas de cálculo. Puede usar los atajos normales para estas operaciones: Ctrl X, Ctrl C y Ctrl V respectivamente. Para seleccionar múltiples celdas, mantenga presionada la tecla Ctrl mientras selecciona, o mantenga presionado el botón del mouse izquierdo y arrastre para seleccionar un rango de celda rectangular.
Las operaciones de cortar y copiar almacenan contenidos, propiedades y alias de las celdas en el portapapeles. La operación de pegar escribe los datos de tal manera que el contenido de la celda superior izquierda de los datos almacenados aparezcan en la celda activa. Otro contenido almacenado se coloca en relación con esa celda. Las fórmulas se actualizan en consecuencia. Los alias se pegan únicamente si son únicos.
Las propiedades de una celda de la hoja de cálculo pueden ser editadas haciendo clic derecho en la celda y seleccionando Propiedades... del menú contextual. El siguiente cuadro de diálogo aparece:
Como se indica en las pestañas, se pueden modificar las siguientes propiedades:
Una celda de la hoja de cálculo puede contener un número, un texto o una expresión. Las expresiones deben comenzar con un signo igual '='.
Las expresiones de celdas pueden contener números, funciones, referencias a otras celdas y referencias a propiedades del modelo (Pero vea Limitaciones actuales más abajo). Una celda puede ser referenciada por su dirección (columna con letra MAYÚSCULA + número de fila, ejemplo: B4) o por su alias.
Nota: Las expresiones de celda son tratadas por FreeCAD como código de programación. Por lo tanto, cuando editas una celda el contenido podría ver que no sigue su configuración de visualización:
Las referencias a objetos en el modelo se explican en Referencias a datos CAD más abajo. El uso de los valores de las celdas de la hoja de cálculo para definir las propiedades del modelo se explica en Datos de la hoja de cálculo en las expresiones más adelante. Para más información sobre las expresiones y las funciones disponibles, véase Expresiones.
Los datos en las celdas de una hoja de cálculo pueden usarse en expresiones de parámetros del modelo CAD. Por lo tanto, una hoja de cálculo puede usarse como fuente de valores de parámetros utilizados en todo un modelo, recolectando efectivamente los valores en un solo lugar. Cuando los valores se cambian en la hoja de cálculo, se propagan por todo el modelo.
De manera similar, las propiedades de los objetos del modelo CAD pueden usarse en expresiones en celdas de hoja de cálculo. Esto permite el uso de propiedades de objetos como volumen o área en la hoja de cálculo. Si se cambia el nombre de un objeto en el modelo CAD, el cambio se propagará automáticamente a cualquier referencia en expresiones de hoja de cálculo utilizando el nombre al que se cambió.
Se puede usar más de una hoja de cálculo en un documento. Una hoja de cálculo puede ser identificada usando su nombre o su etiqueta.
FreeCAD asignará automáticamente un nombre único a una hoja de cálculo cuando se cree. Estos nombres siguen el patrón Spreadsheet
, Spreadsheet001
, Spreadsheet002
y así sucesivamente. El nombre no se puede cambiar y no es visible en las propiedades de la hoja de cálculo. Se puede utilizar para hacer referencia a la hoja de cálculo en una Expresión (consulte Datos de la hoja de cálculo en expresiones a continuación).
La etiqueta de una hoja de cálculo se establece automáticamente con el nombre de la hoja de cálculo al momento de su creación. A diferencia del nombre, la etiqueta se puede cambiar, por ejemplo en el panel de propiedades o usando la acción Cambiar nombre del menú contextual. Por defecto, FreeCAD no acepta etiquetas duplicadas, pero existe una preferencia para anular esto. No se puede hacer referencia a las hojas de cálculo con etiquetas duplicadas en el mismo documento por su etiqueta.
FreeCAD comprueba si hay dependencias cíclicas. Consulte Limitaciones actuales.
Como se indicó anteriormente, se pueden hacer referencia a datos del modelo CAD en expresiones de hoja de cálculo.
La siguiente tabla muestra algunos ejemplos suponiendo que el modelo tiene una característica denominada "MyCube":
Datos CAD | Celda en la hoja de cálculo | Resultado |
---|---|---|
Longitud paramétrica de un cubo del entorno de trabajo Part | =MyCube.Length
|
Longitud con unidades mm |
Volumen del cubo | =MyCube.Shape.Volume
|
Volumen en mm³ sin unidades |
Tipo de forma de cubo | =MyCube.Shape.ShapeType
|
Cadena de texto: Solid |
Etiqueta del cubo | =MyCube.Label
|
Cadena: MyCube |
Coordenada X del centro de masa del cubo | =MyCube.Shape.CenterOfMass.x
|
Coordenada en mm sin unidades |
Para utilizar datos de hojas de cálculo en otras partes de FreeCAD, normalmente creará una Expresión que haga referencia a la hoja de cálculo y a la celda que contiene los datos que desea utilizar. Puede identificar hojas de cálculo por nombre o por etiqueta, y puede identificar las celdas por dirección o alias. El autocompletado está disponible para todas las formas de referencias.
Hoja de cálculo por nombre | Hoja de cálculo por etiqueta | |
---|---|---|
Celda por dirección | =Spreadsheet042.B5
|
=<<MySpreadsheet>>.B5
|
Celda por alias | =Spreadsheet042.MyAlias
|
=<<MySpreadsheet>>.MyAlias
|
La forma recomendada de hacer referencia a los datos de una hoja de cálculo es utilizar la etiqueta de la hoja de cálculo y el nombre del alias de la celda. Para obtener una explicación más detallada de los pros y los contras de los modos de referencia, consulte la sección ampliada a continuación.
El uso de la etiqueta de la hoja de cálculo tiene la ventaja de que se puede cambiar libremente para describir el contenido de la hoja de cálculo. También es más fácil identificar la hoja de cálculo que se está utilizando ya que el texto de la expresión coincide con la etiqueta que se muestra en las vistas de modelo y propiedades. Si decide cambiar la etiqueta de una hoja de cálculo, se actualizarán las referencias existentes al contenido de la hoja de cálculo, por lo que no romperá sus expresiones al cambiar el nombre de la hoja de cálculo. El nombre interno de la hoja de cálculo no está disponible en ningún lugar excepto en el editor de expresiones, por lo que si usa el nombre interno y luego decide cambiar el nombre de las hojas de cálculo, es posible que le resulte difícil rastrear los datos de la expresión hasta su origen.
Tenga en cuenta que cuando crea una nueva hoja de cálculo, el nombre y la etiqueta son los mismos, por lo que es fácil utilizar accidentalmente el nombre de la hoja de cálculo en lugar de la etiqueta. Una forma sencilla de evitar esto es darle a la hoja de cálculo un nombre significativo antes de comenzar a usarla en expresiones.
Si bien puede usar el número de fila y columna en una expresión para hacer referencia a una celda, la mejor práctica es darle a la celda un nombre de alias y usarlo. Consulta Propiedades de celda sobre cómo configurar el alias. Por ejemplo, si los datos de la celda B1 contenían el parámetro de longitud de un objeto, un nombre de alias de MyObject_Length
permitiría hacer referencia al valor como <<MyParams>>.MyObject_Length
en lugar de Hoja de cálculo.B1
. Además de ser mucho más fáciles de leer y comprender, los nombres de alias también son mucho más fáciles de cambiar si decides ajustar la estructura de tu hoja de cálculo. Usar un alias también tiene la ventaja de que es más fácil ver qué celdas se usan para controlar otras partes del documento. Tenga en cuenta que FreeCAD ajustará automáticamente las referencias posicionales en las expresiones si inserta o elimina filas y columnas en la hoja de cálculo, por lo que incluso si usa números de filas y columnas en una expresión, puede insertar filas y columnas sin romper las referencias a las celdas circundantes. .
La edición de una hoja de cálculo activará un nuevo cálculo del modelo 3D, incluso si los cambios no afectan el modelo. Para un modelo complejo, un nuevo cálculo puede llevar mucho tiempo y, por supuesto, tener que esperar después de cada edición es bastante molesto.
Hay tres soluciones para hacer frente a esto:
#PENDING
.=NameOfFile#<<MySpreadsheet>>.MyAlias
.
La hoja de cálculo tiene una noción de dimensión (unidades) asociada con los valores de las celdas. Un número ingresado sin una unidad asociada no tiene dimensión. La unidad debe ingresarse inmediatamente después del valor numérico, sin espacios intermedios. Si un número tiene una unidad asociada, esa unidad se utilizará en todos los cálculos. Por ejemplo, la multiplicación de dos longitudes con la unidad mm da un área con la unidad mm².
Si una celda contiene un valor que representa una dimensión, se debe ingresar con su unidad asociada. Si bien en muchos casos simples uno puede arreglárselas con un valor adimensional, no es prudente no ingresar la unidad. Si se ingresa un valor que representa una dimensión sin su unidad asociada, hay algunas secuencias de operaciones que hacen que FreeCAD se queje de unidades incompatibles en una expresión cuando parece que la expresión debería ser válida. (Esto se puede entender mejor consultando este hilo en los foros de FreeCAD).
Puede cambiar las unidades mostradas para un valor de celda usando el diálogo de propiedades de celda. Esto no cambia el valor contenido en la celda; solo convierte el valor existente para su visualización. El valor utilizado para los cálculos no cambia y los resultados de las fórmulas que utilizan el valor no cambian. Por ejemplo, una celda que contiene el valor "5,08 cm" se puede mostrar como "2 pulgadas" cambiando el valor de la pestaña de unidades a "pulgadas".
Un número adimensional no se puede cambiar a un número con una unidad mediante el cuadro de diálogo de propiedades de la celda. Se puede introducir una cadena de unidad y esa cadena se mostrará; pero la celda todavía contiene un número adimensional. Para cambiar un valor sin dimensiones a un valor con una dimensión, se debe volver a ingresar el valor en sí con su unidad asociada.
En ocasiones puede resultar conveniente eliminar una dimensión de una expresión. Esto se puede hacer multiplicando por 1 con una unidad recíproca.
Las hojas de cálculo de FreeCAD se pueden importar y exportar al formato CSV, que también puede leerse y escribirse en la mayoría de las otras aplicaciones de hojas de cálculo, como Microsoft Excel o LibreOffice Calc. Consulte Importar hoja de cálculo y Exportar hoja de cálculo para obtener más información.
Las hojas de cálculo en formato XLSX de Excel se pueden importar con el comando Std Import o el comando Std Open. Se admiten las siguientes funciones:
Otras funciones no se importan a la hoja de cálculo de FreeCAD.
Para manejar la configuración de página necesaria para la impresión, las hojas de cálculo de FreeCAD se imprimen insertándolas en una TechDraw Spreadsheet View.
FreeCAD comprueba si hay dependencias cíclicas cuando vuelve a calcular. Por diseño, esa verificación se detiene en el nivel del objeto de la hoja de cálculo. Como consecuencia, no debería tener una hoja de cálculo que contenga celdas cuyos valores se utilicen para especificar parámetros del modelo y celdas cuyos valores utilicen resultados del modelo. Por ejemplo, no puede tener celdas que especifiquen el largo, ancho y alto de un objeto, y otra celda que haga referencia al volumen total de la forma resultante. Esta restricción se puede superar teniendo dos hojas de cálculo: una utilizada como fuente de datos para los parámetros de entrada del modelo y la otra para cálculos basados en los datos geométricos resultantes.
Es posible enlazar el contenido de unas celdas a otras celdas en la hoja de cálculo. Esto puede ser útil cuando se trata de tablas grandes o para obtener contenido de celda de otra hoja de cálculo.
Para enlazar, por ejemplo, el rango de celdas A3-C4 al rango de celdas B1-D2:
La hoja de cálculo ahora puede verse así
se puede cambiar.
Puedes usar hojas de cálculo para crear tablas de configuración con conjuntos de parámetros predefinidos para tu modelo, y después cambiar dinamicamente que configuración usar. Vea este post del foro si quiere saber más sobre el funcionamiento interno de esta característica.
import Spreadsheet
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet", "MySpreadsheet")
sheet.Label = "Dimensions"
sheet.set("A1", "10mm")
sheet.recompute()
sheet.get("A1")
sheet.setAlias("B1", "Diameter")
sheet.set("Diameter", "20mm")
sheet.recompute()
sheet.get("Diameter")
# sheet.get() results in an error if the cell is empty.
# sheet.getContents() can be used to check the cell first.
if sheet.getContents("C1"):
print(sheet.get("C1"))